/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import bean.Nacionalidade;
import interfaces.NacionalidadeInterface;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author VENANCIO
 */
public class NacionalidadeDao implements NacionalidadeInterface{
    
    private Connection con = null;
    private String sql = null;
    
    public NacionalidadeDao(){
        try {
            con =  new Conexao().getConexao();
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public void inserir(Nacionalidade n) {
        sql = "INSERT INTO NACIONALIDADE(NACIONALIDADE_DESC) VALUES (?)";
        try {
            PreparedStatement stmt = con.prepareStatement(sql);
            int count=1;
            stmt.setString(count++, n.getNacionalidade());
            stmt.executeQuery();
            stmt.close();
        } catch (SQLException ex) {
            Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            try {
                con.close();
            } catch (SQLException ex) {
                Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }    
    }
 
    @Override
    public List<Nacionalidade> consultar() {
        List<Nacionalidade> nacionalidade = new ArrayList<Nacionalidade>();
        sql = "SELECT * FROM NACIONALIDADE ORDER BY NACIONALIDADE_DESC";
        try {
            PreparedStatement stmt = con.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();
            while(rs.next()){
                Nacionalidade n = new Nacionalidade();
                n.setCod(rs.getInt("NACIONALIDADE_COD"));
                n.setNacionalidade(rs.getString("NACIONALIDADE_DESC"));
                nacionalidade.add(n);
            }
            rs.close();
            stmt.close();
        } catch (SQLException ex) {
            Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            try {
                con.close();
            } catch (SQLException ex) {
                Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        
        return nacionalidade;
        
    }

    @Override
    public List<Nacionalidade> consultar(Nacionalidade n) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void alterar(Nacionalidade n) {
        sql = "UPDATE TABLE NACIONALIDADE SET NACIONALIDADE_DESC = ?";
        try {
            PreparedStatement stmt = con.prepareStatement(sql);
            int count=1;
            stmt.setString(count++, n.getNacionalidade());
            stmt.executeUpdate();
            stmt.close();
        } catch (SQLException ex) {
            Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            try {
                con.close();
            } catch (SQLException ex) {
                Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
    }

    @Override
    public void excluir(Nacionalidade n) {
        sql = "DELETE * FROM NACIONALIDADE WHERE NACIONALIDADE_COD = " + n.getCod();
        try {
            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.executeUpdate();
            stmt.close();
        } catch (SQLException ex) {
            Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            try {
                con.close();
            } catch (SQLException ex) {
                Logger.getLogger(NacionalidadeDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
    }
   
    
}
